# top parameter and interface files — include any common
${PROJECT_PATH}/include/param.svh
${PROJECT_PATH}/include/dtype.svh
${PROJECT_PATH}/include/isa.svh
${PROJECT_PATH}/design/common/common_delay_line.sv
${PROJECT_PATH}/design/common/common_mux_n_to_1.sv
${PROJECT_PATH}/design/common/common_fifo.sv
${PROJECT_PATH}/design/lpu/lpu_intf.svh
# packages and interfaces first
${PROJECT_PATH}/design/aru/aru_intf.svh
${PROJECT_PATH}/design/aru/aru_param.svh

# test arb

# low-level RTL
${PROJECT_PATH}/design/aru/aru_arb.sv

${PROJECT_PATH}/design/aru/aru_arb_rdgen/aru_arb_rdgen_intf.svh

# low-level RTL
${PROJECT_PATH}/design/aru/aru_arb_rdgen/aru_arb_rdgen_cfg_pipe.sv
${PROJECT_PATH}/design/aru/aru_arb_rdgen/aru_arb_rdgen_crd_gen.sv
${PROJECT_PATH}/design/aru/aru_arb_rdgen/aru_arb_rdgen_addr_calc.sv
${PROJECT_PATH}/design/aru/aru_arb_rdgen/aru_arb_rdgen_broadcast.sv
${PROJECT_PATH}/design/aru/aru_arb_rdgen/aru_arb_rdgen.sv

${PROJECT_PATH}/design/aru/aru_arb_wrgen/aru_arb_wrgen_cfg_pipe.sv
${PROJECT_PATH}/design/aru/aru_arb_wrgen/aru_arb_wrgen_crd_gen.sv
${PROJECT_PATH}/design/aru/aru_arb_wrgen/aru_arb_wrgen_addr_calc.sv
${PROJECT_PATH}/design/aru/aru_arb_wrgen/aru_arb_wrgen_req_cntr.sv
${PROJECT_PATH}/design/aru/aru_arb_wrgen/aru_arb_wrgen.sv

${PROJECT_PATH}/design/aru/aru_binary/aru_binary_mul.sv
${PROJECT_PATH}/design/aru/aru_binary/aru_binary_max_min.sv
${PROJECT_PATH}/design/aru/aru_binary/aru_binary_div.sv
${PROJECT_PATH}/design/aru/aru_binary/aru_binary_add_sub.sv
${PROJECT_PATH}/design/fpu/bf16_add.sv
${PROJECT_PATH}/design/fpu/bf16_fpdiv.sv
${PROJECT_PATH}/design/fpu/bf16_fpexp.sv
${PROJECT_PATH}/design/fpu/bf16_fpmult.sv
${PROJECT_PATH}/design/fpu/bf16_fpsqrt.sv

${PROJECT_PATH}/design/aru/aru_gm_wrgen/aru_gm_wrgen_cfg_pipe.sv
${PROJECT_PATH}/design/aru/aru_gm_wrgen/aru_gm_wrgen_crd_gen.sv
${PROJECT_PATH}/design/aru/aru_gm_wrgen/aru_gm_wrgen_addr_calc.sv
${PROJECT_PATH}/design/aru/aru_gm_wrgen/aru_gm_wrgen_req_cntr.sv
${PROJECT_PATH}/design/aru/aru_gm_wrgen/aru_gm_wrgen.sv

${PROJECT_PATH}/design/aru/aru_instr_mngr.sv

${PROJECT_PATH}/design/aru/aru_mux/aru_mux_1_to_2.sv
${PROJECT_PATH}/design/aru/aru_mux/aru_mux_2_to_1.sv
${PROJECT_PATH}/design/aru/aru_mux/aru_mux_1_to_3.sv
${PROJECT_PATH}/design/aru/aru_mux/aru_mux_1_to_4.sv

${PROJECT_PATH}/design/aru/aru_psb_rdgen/aru_psb_rdgen_cfg_pipe.sv
${PROJECT_PATH}/design/aru/aru_psb_rdgen/aru_psb_rdgen_crd_gen.sv
${PROJECT_PATH}/design/aru/aru_psb_rdgen/aru_psb_rdgen_addr_calc.sv
${PROJECT_PATH}/design/aru/aru_psb_rdgen/aru_psb_rdgen_conv.sv
${PROJECT_PATH}/design/aru/aru_psb_rdgen/aru_psb_rdgen.sv

${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_intf.svh
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_cfg_pipe.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_div.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_max_min_2_to_1.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_max_min_4_to_1.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_sum_2_to_1.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_sum_4_to_1.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_stage1.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_stage2.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_stage3.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce_transpose.sv
${PROJECT_PATH}/design/aru/aru_reduce/aru_reduce.sv

${PROJECT_PATH}/design/aru/aru_ub_rdgen/aru_ub_rdgen_intf.svh

# low-level RTL
${PROJECT_PATH}/design/aru/aru_ub_rdgen/aru_ub_rdgen_cfg_pipe.sv
${PROJECT_PATH}/design/aru/aru_ub_rdgen/aru_ub_rdgen_crd_gen.sv
${PROJECT_PATH}/design/aru/aru_ub_rdgen/aru_ub_rdgen_addr_calc.sv
${PROJECT_PATH}/design/aru/aru_ub_rdgen/aru_ub_rdgen.sv

${PROJECT_PATH}/design/aru/aru_ub_wrgen/aru_ub_wrgen_cfg_pipe.sv
${PROJECT_PATH}/design/aru/aru_ub_wrgen/aru_ub_wrgen_crd_gen.sv
${PROJECT_PATH}/design/aru/aru_ub_wrgen/aru_ub_wrgen_addr_calc.sv
${PROJECT_PATH}/design/aru/aru_ub_wrgen/aru_ub_wrgen_req_cntr.sv
${PROJECT_PATH}/design/aru/aru_ub_wrgen/aru_ub_wrgen.sv

${PROJECT_PATH}/design/aru/aru_unary/aru_unary_exp.sv
${PROJECT_PATH}/design/aru/aru_unary/aru_unary_pow.sv
${PROJECT_PATH}/design/aru/aru_unary/aru_unary_recp.sv
${PROJECT_PATH}/design/aru/aru_unary/aru_unary_sqrt.sv
${PROJECT_PATH}/design/aru/aru_unary/aru_unary_clamp.sv

${PROJECT_PATH}/design/aru/aru_unary/aru_unary_neg.sv





# tb
tb/aru_tb.sv

